home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 February / EnigmA AMIGA RUN 15 (1997)(G.R. Edizioni)(IT)[!][issue 1997-02][PLANET CD V].iso / progs / thor / examples / findfile.br < prev    next >
Text File  |  1996-11-10  |  2KB  |  105 lines

  1. /*  FindFiles.br 
  2.  *
  3.  *  Arexx script to find files on a bbs.
  4.  *
  5.  *  Script by: Eivind Nordseth, Ultima Thule Software.
  6.  */
  7.     options results
  8.  
  9.     parse arg argument
  10.     template = 'BBSNAME/A,REST/F'
  11.  
  12.     if(argument = '' | argument = '?') then
  13.     do
  14.         say '$VER: FindFiles.br 3.3 (12.09.94)'
  15.         say 'Template: BBSNAME/A,FAREANAME/K,SEARCH/K,NAME/S,KEYWORD/S,NEWERTHAN/K/N' 
  16.         exit
  17.     end
  18.  
  19.     if ~show('p', 'BBSREAD') then do
  20.         address command
  21.             "run >nil: `GetEnv THOR/THORPath`bin/LoadBBSRead"
  22.             "WaitForPort BBSREAD"
  23.     end
  24.  
  25.     address "BBSREAD"
  26.     signal on ERROR 
  27.  
  28.     READARGS template ARGS CMDLINE argument
  29.     if(rc ~= 0) then 
  30.     do
  31.         say BBSREAD.LASTERROR
  32.         exit
  33.     end
  34.  
  35.     SEARCHBRFILE bbsname '"' || ARGS.BBSNAME || '"' stem SRESULT ARGS.REST 
  36.  
  37.     if(result > 0) then
  38.     do
  39.         do f=1 to SRESULT.FILEAREA.COUNT
  40.             say '0a'x || '(' || SRESULT.FILEAREA.f || ')'
  41.  
  42.             do i=1 to SRESULT.FILE.f.COUNT
  43.                 call showfiledata('"' || ARGS.BBSNAME || '"', '"'|| SRESULT.FILEAREA.f || '"', SRESULT.FILE.f.i)
  44.             end
  45.         end
  46.     end
  47.     else say 'No files found'
  48.  
  49.     exit
  50.  
  51.  
  52. /* Procedure to show the data about a file */
  53.  
  54. showfiledata: procedure
  55.     parse arg bbs,farea,filenr
  56.  
  57.     FDF_DELETED = '00000001'x
  58.  
  59.     drop FILE.    /* Important */
  60.  
  61.     READBRFILE bbs farea filenr tagsstem FILE datastem DATA
  62.  
  63.     nextfile = result
  64.  
  65.     if (bitand(DATA.FLAGS,FDF_DELETED) ~= FDF_DELETED) then
  66.     do
  67.         if(symbol("FILE.DATE") = "VAR") then fdate = FILE.DATE
  68.         else date = DATA.FILEDATE
  69.     
  70.         AMIGA2DATE fdate CD
  71.         fdatestr = right(CD.YEAR, 2) || right('0'||CD.MONTH, 2) || right('0'||CD.MDAY, 2)
  72.  
  73.         if(symbol("FILE.SIZE") = "VAR") then fsize = FILE.SIZE
  74.         else size = "Unkn"
  75.                 
  76.         if(symbol("FILE.DOWNLOADS") = "VAR") then fdnls = FILE.DOWNLOADS
  77.         else fdnls = "Unkn"
  78.                 
  79.         if(symbol("FILE.DESCRIPTION.COUNT") = "VAR") then descr = FILE.DESCRIPTION.1
  80.         else descr = "NONE"
  81.  
  82.         say left(FILE.NAME,16) || " " || fdatestr || " " || right(fsize,7) || right(fdnls,4) || " " || descr
  83.     
  84.         if(descr ~= "NONE") then 
  85.         do
  86.             if(FILE.DESCRIPTION.COUNT > 1) then
  87.             do
  88.                 do n=2 to FILE.DESCRIPTION.COUNT
  89.                     say left("",33) || FILE.DESCRIPTION.n
  90.                 end
  91.             end
  92.         end
  93.     end
  94.     else say 'File is deleted'
  95.  
  96.     return nextfile
  97.  
  98. ERROR:
  99.     if(rc ~= 0) then 
  100.     do
  101.         say 'Error' rc 'in line' SIGL ':' BBSREAD.LASTERROR
  102.         exit
  103.     end
  104.     exit
  105.